package ldh.im.fxbase.richtext;

import org.fxmisc.richtext.model.SegmentOpsBase;

import java.util.Optional;

public class TextItemOps<S> extends SegmentOpsBase<TextItem, S> {


    public TextItemOps() {
        super(new TextItem());
    }

    @Override
    public char realCharAt(TextItem textItem, int i) {
        return textItem.getTextItemType().getTextItemOps().realCharAt(textItem, i);
    }

    @Override
    public String realGetText(TextItem textItem) {
        return textItem.getTextItemType().getTextItemOps().realGetText(textItem);
    }

    @Override
    public TextItem realSubSequence(TextItem textItem, int i, int i1) {
        return (TextItem) textItem.getTextItemType().getTextItemOps().realSubSequence(textItem, i, i1);
    }

    @Override
    public int length(TextItem textItem) {
        if (textItem == null) return 0;
        TextItemType textItemType = textItem.getTextItemType();
        if (textItemType == null) return 0;
        int length = textItemType.getTextItemOps().length(textItem);
        return length;
    }

    @Override
    public Optional<TextItem> joinSeg(TextItem textItem, TextItem seg1) {
        return Optional.empty();
    }
}
